home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / demos / r-z / stormc-demo / liesmich < prev    next >
Text File  |  1996-01-18  |  26KB  |  648 lines

  1. Willkommen zur StormC-Demoversion 1.0
  2.  
  3. Bereits zur Computer 95 im letzten November war eine Vorversion unseres
  4. neuen Compilersystems erhältlich. Die verwirklichten Konzepte und 
  5. eingeflossenen neuen Innovationen haben auch die Presse überzeugt, wie
  6. Sie in einigen Berichten in den Januar- und Februar-Ausgaben der gängigen
  7. Amiga-Zeitschriften nachlesen können.
  8.  
  9. Hier nur einige Auszüge:
  10.  
  11. Amiga Plus 1/96
  12.  
  13.    Neue Konzepte bei Entwicklung und Qualitätssicherung...
  14.    Die erste Besonderheit ist die Projektverwaltung, die zum ersten
  15.    Mal bei einem solchen Paket nicht aufgesetzt wirkt...
  16.  
  17. Amiga Magazin 1/96
  18.    
  19.    Die Projektverwaltung: Endlich einmal ein Tool, das nicht wie ein Klotz 
  20.    am Bein wirkt, sondern wirklich nützlich ist.
  21.    
  22. Amiga Special 2/96
  23.  
  24.    Ein schneller Compiler, der leistungsstarke Debugger und die komfortable
  25.    Entwicklungsumgebung sind eine interessante Mischung, wenn es sich um 
  26.    professionelle Softwareentwicklung handelt...
  27.  
  28. Mit der beiliegenden Demoversion können Sie sich selbst davon überzeugen.
  29.  
  30. Einschränkungen der Demoversion:
  31. ================================
  32.  
  33. Der beiliegende Compiler wird Ihnen zwar große Sourcen durchkompilieren 
  34. aber lediglich maximal 10 KByte große Objektcodes schreiben. Sie haben
  35. damit zumindest die Gewißheit, daß Ihre großen Projekte auch kompiliert
  36. werden können.
  37.  
  38. Der Linker linkt aus den erzeugten Objekten ein Programm mit maximal 
  39. 20 KByte Größe.
  40.  
  41. Alle Programmteile von StormC lassen sich NICHT über das CLI starten 
  42. sondern sind lediglich in der integrierten Umgebung nutzbar.
  43.  
  44.  
  45. Wichtiges zur Installation:
  46. ===========================
  47.  
  48. Die vorliegenden Dateien sind dafür vorgesehen, von CD installiert zu 
  49. werden. Wenn Sie die Dateien bereits auf Ihre Festplatte kopiert haben
  50. ist eine Installation nicht notwendig. Sie müssen dann lediglich einen 
  51. StormC-Assign in die Datei "user-startup" eintragen, damit die Demo-
  52. Sourcen und StormC-Voreinstellungen unverändert genutzt werden können.
  53.  
  54. Include-Lizenzen:
  55. =================
  56.  
  57. Wenn Sie die Demoversion von einer Mailbox oder vom Aminet geladen 
  58. haben, liegen nur die Includes und Bibliotheken bei, deren Urheber-
  59. rechte bei uns liegen. Es fehlen die Systemincludes zu Kickstart/Work-
  60. bench 3.1. 
  61.  
  62. Woher bekommt man die Includes?
  63. -------------------------------
  64.  
  65. Wenn Sie die Demoversion direkt bei uns anfordern, werden selbstver-
  66. ständlich alle Includes und Bibliotheken mitgeliefert. Wir müssen
  67. allerdings eine Schutzgebühr von 20,- DM berechnen, die Ihnen jedoch 
  68. beim Kauf einer Vollversion von StormC angerechnet wird. Bei einer 
  69. Bestellung per Nachnahme erhöht sich der Preis um die Nachnahmegebühren
  70. von 13,- DM.
  71.  
  72. Desweiteren finden Sie die kompletten Includes und Bibliotheken auf der 
  73. CD 1/96 des Amiga-Magazins.
  74.  
  75. Vielleicht haben Sie aber auch bereits die Preview-Version unseres 
  76. StormC-Compilers. Dann haben Sie ebenfalls bereits die Includes 
  77. erhalten und müssen in der Demoversion lediglich folgende Dateien 
  78. ergänzen:
  79.  
  80. In den Includes die kompletten Verzeichnisse:
  81.  
  82.     datatypes
  83.     devices
  84.     diskfont
  85.     dos
  86.     exec
  87.     gadgets
  88.     graphics
  89.     hardware
  90.     intuition
  91.     libraries
  92.     prefs
  93.     resources
  94.     rexx
  95.     utility
  96.     workbench
  97.     
  98. In den Libs die Bibliothek:
  99.  
  100.     amiga.lib
  101.     small.lib
  102.     debug.lib
  103.     ddebug.lib
  104.  
  105. Bitte verwenden Sie nicht einfach die Includes im Verzeichnis
  106. eines anderen Compilers oder direkt von unserer Preview-Version.
  107. Es wurden einige Änderungen an den, der aktuellen Demoversion
  108. mitgelieferten Dateien vorgenommen, so daß nur die beschriebene 
  109. Vorgehensweise zum Erfolg führt.
  110.  
  111.  
  112. Änderungen und Erweiterungen gegenüber der Preview-Version:
  113. ===========================================================
  114.  
  115. Allgemeine
  116. ----------
  117.  
  118. Die komplette Umgebung ist nun lokalisiert. Die voreingestellte 
  119. Sprache ist Englisch. Bei der Installation wird automatisch der
  120. deutschsprachige Catalog kopiert und auch genutzt, wenn Sie 
  121. Workbenck-Lokalisierung deutschsprachig eingestellt haben.
  122.  
  123. Möchten Sie trotz deutschsprachiger Workbench, mit StormC englisch-
  124. sprachig arbeiten, genügt es die Locale-Datei im Verzeichnis
  125. "StormC:StormSYS/CATALOGE/Deutsch/StormCPP.catalog" umzubenennen.
  126.  
  127. Programmstart:
  128. --------------
  129.  
  130. Entgegen der Beschreibung im Handbuch auf der Seite 12 wird das Start-
  131. bild nicht angezeigt, wenn für Ihren Workbench-Screen weniger als 
  132. 64 Farben eingestellt sind. In diesem Fall erscheint ein kleines Fenster,
  133. das Sie darauf hinweist, daß das System noch geladen wird.
  134.  
  135. Nach dem Laden erscheint ein weiteres Fenster, das Sie darüber informiert, 
  136. welche Version Sie benutzen.
  137.  
  138. Projektverwaltung (StromShell):
  139. -------------------------------
  140.  
  141. Bei "Datei(en) hinzufügen" ist eine mehrfache Selektion in der Dateiauswahl
  142. möglich.
  143.  
  144. In die Projektfenster können Workbench-Piktogramme (Appwindow) abgelegt 
  145. werden.
  146.  
  147. Ist ein Sektionstitel markiert, wenn der Menüpunkt "Löschen" angewählt wird,
  148. erfolgt die Rückfrage, ob der Inhalt der ganzen Sektion gelöscht werden soll.
  149. Beantworten Sie die Rückfrage mit "JA", wird die komplette Sektion entfernt.
  150. Die jeweiligen Dateien bleiben selbstverständlich unberührt.
  151.  
  152. Wird das Debug-Piktogramm oder der Menüpunkt "Debug..." angewählt, obwohl die
  153. Option zum Erzeugen von Debugger-Dateien im Projekt nicht angewählt sind, 
  154. erfolgt eine Rückfrage, ob große oder kleine Debug-Dateien angelegt werden 
  155. sollen. Die Projekt-Einstellungen bleiben allerdings unbeeinflußt.
  156.  
  157. Bei Klick auf die Knöpfe "Start..." und "Debug..." aus dem Fehlerfenster, 
  158. wird das Fehlerfenster zuerst geschlossen und dann die entsprechende Programm-
  159. funktion ausgeführt.
  160.  
  161. Beim "Make" bereits übersetzter Projekte wird jetzt zurückgefragt, ob nur 
  162. gelinkt oder das ganze Projekt neu kompiliert werden soll.
  163.  
  164. Der neue Menüpunkt "Bibliothek(en) hinzufügen..." entspricht dem Menüpunkt
  165. "Datei(en) hinzufügen...", setzt aber den Bibliothekssuchpfad des Projekts
  166. als Verzeichnis im ASL-Filerequester und das Pattern "#?.lib". Dadurch
  167. lassen sich deutlich schneller Bibliotheken zum Projekt hinzunehmen.
  168. Einziges Problem: Mehrfachselektionen werden immer alphabetisch sortiert 
  169. vom ASL-Requester zurückgegeben, die relevante Reihenfolge von 
  170. Bibliotheken kann man also nur erhalten, wenn man jeweils eine Bibliothek 
  171. nach der anderen zum Projekt hinzufügt.
  172.  
  173. Werden Dateien hinzugefügt, die noch nicht existieren, so wird auf Wunsch
  174. die Datei "leer" erzeugt. Als Icon wird jeweils versucht das Icon
  175. "ENV:STORMCPP/def_text.suffix" zu übernehmen, wobei für ".suffix" das Suffix
  176. des Dateinamens eingesetzt wird (z.B. .c oder .h). Dadurch lassen sich
  177. für verschiedene Textarten verschiedene Piktogramme und Texteinstellungen
  178. verwenden.
  179.  
  180. Die Einstellungen können nun auch von der StormShell gesichert und geladen
  181. werden.
  182.  
  183. Für den Linker wurden zwei neue Seiten in den Projekteinsteller eingefügt.
  184. Eine weitere erhielt der Optimizer des Compilers.
  185.  
  186. Beim Programmstart kann so ziemlich jeder Parameter der Shell-Umgebung
  187. eingestellt werden.
  188.  
  189. Die Codegröße des Executables wird nun nach jedem Compilerlauf neu angezeigt.
  190. Die Codegröße von Bibliotheken wird nun auch angezeigt, wenn die Bibliothek
  191. aus dem Suchpfad der Bibliotheken stammt.
  192.  
  193. Die Einstellung für 32-bit-korrekte-Multiplikation ist entfallen. Der Compiler 
  194. entscheidet selbständig wann welche Multiplikation benötigt wird.
  195.  
  196. Bei den Einstellern zum C/C+-Compiler ist die Möglichkeit hinzugekommen,
  197. das kleine oder große Code-Modell zu wählen. Der Compiler und der Linker 
  198. generieren dann kurze Sprünge (bsr). 
  199.  
  200. Hinweis: Zur aktuellen Demoversion werden allerdings keine Bibliotheken
  201. geliefert, die ein kleines Code-Modell unterstützen. Bei eingeschalteter 
  202. Option werden Ihre Programm demnach nicht lauffähig sein.
  203.  
  204. Bei "Make" und "Compile" werden nun alle Quelltexte automatisch gesichert.
  205.  
  206. Die Funktionen der Iconleiste sind nun mit den Funktionstasten F1 bis F6 und
  207. F7 bis F10 erreichbar.
  208.  
  209. Das About-Fenster und das Einstellungsfenster kann auch mit ESC geschlossen
  210. werden. Weitere Shortcuts für About sind "o" und <Return>. Der Use- und der
  211. Cancel-Knopf des Einstellungsfensters sind auch über ihre Shortcuts bedienbar.
  212.  
  213. Das Fehlerfenster ist nun tastatursteuerbar: Die Shortcuts für "Run", "Debug"
  214. und "Cancel" sind implementiert. Wenn gerade ein "Make" läuft, kann man es 
  215. auch mit <ESC> abbrechen, danach, bzw. wenn kein "Make" läuft, wird das 
  216. Fenster durch <ESC> geschlossen. Mit "w" kann man die Warnungen an- und 
  217. ausschalten.
  218. Per Cursor läuft man durch die Fehlerliste, per <Alt>-Cursor erreicht man
  219. die erste oder letzte Fehlermeldung. <Return> zeigt die Fehlermeldung im
  220. Editor an. 
  221.  
  222. Das Projektfenster ist komplett tastatursteuerbar. Alle 4 Cursortasten
  223. bewegen den Cursor und den Inhalt entsprechend, <Alt> <hoch>/<runter> ermöglicht
  224. den Sprung an den Anfang/Ende der Einträge, <Shift> <rechts>/<links> an den
  225. rechten oder linken Rand. <Return> führt die Aktion entsprechend eines 
  226. Doppelklicks aus, <Alt> <Return> die jeweilige Alternative (bisher nur beim
  227. Executable belegt). Backspace bzw. Delete löschen den Eintrag des Cursor
  228. aus dem Projekt und setzen den Cursor auf den nachfolgenden Eintrag.
  229.  
  230. Debugger (StormRUN):
  231. --------------------
  232.  
  233. Das im Handbuch beschriebene Debugger-Demo ist leider nur ab 
  234. Betriebssystem V39 lauffähig. Wenn Sie V37/38 installiert haben, sollten
  235. Sie mit dem Gadtools-Demo probieren.
  236.  
  237. Der Menüeintrag "Programm sichern als..." (Seite 42) ist in der 
  238. aktuellen Version nicht enthalten, da eine Änderung am Linker eine 
  239. entsprechende Funktionalität verhindert hat.
  240.  
  241. Variablenwerte einfacher Zahl-Typen (char bis long) können in allen
  242. Variablen- und Inspektionsfenstern geändert werden.
  243.  
  244. Die Wertausgabe ist deutlich schneller, da nur noch die Werte 
  245. konvertiert werden, die sich geändert haben.
  246.  
  247. Die möglichen Breakpoints werden jetzt gefiltert, so daß pro Quelltext-
  248. zeile nur noch max. ein Breakpoint steht, d.h. jeder Schritt führt auf 
  249. eine nächste Zeile.
  250.  
  251. In einem Fall des Breakpoint-Löschens wurde der Cache nicht gelöscht, was
  252. Probleme auf 68040-Rechner zur Folge hatte.
  253.  
  254. Ein Hexeditor ist eingebaut. Es kann zwischen Byte-, Word- und 
  255. Longanzeige hin- und hergeschaltet werden. Die Eingabe von Adressen
  256. (sowohl im Gadget wie auch direkt im Text), Hexdaten und ASCII Daten 
  257. ist möglich. Wie im restlichen Debugger wird nur dort etwas angezeigt, bzw
  258. geändert werden, wo gültiges RAM vorhanden ist. Das verhindert
  259. Enforcerhits, aber verbietet auch den Zugriff auf I/O-Bausteine.
  260.  
  261. Mit der TAB-Taste kann der Cursor von der Adresspalte auf die Hex- und 
  262. ASCII-Daten-Spalte und wieder zurück gesetzt werden. Wird in der 
  263. Adresspalte die dort angegebene Adresse überschrieben, springt der 
  264. Hexeditor automatisch zu der Adresse.
  265.  
  266. Bei "Save Settings" ("Einstellungen Speichern") werden die Fensterposition 
  267. und -größe des Hexeditors auch gespeichert. 
  268.  
  269. Das "Casting" funktioniert. Dazu wurde das Cycle-Gadget in den Variablen-
  270. fenstern gegen ein Stringgadget ausgetauscht (in einer Objektdatei 
  271. können schnell mal > 100 Typen auftauchen - mit einem Cyclegadget ist das 
  272. nicht handhabbar). Bislang muß in dieses Stringgadget der Typ exakt so eingetippt werden, wie
  273. er ausgegeben würde. 
  274.  
  275. Wenn eine Adresse illegal ist, wird jetzt die betroffene Adresse ausgegeben
  276. (statt "--").
  277.  
  278. Die Typ-Ausgabe kann bekanntlich in zwei Modi erfolgen: ANSI-C oder 
  279. AMIGA-C (mit ULONG, BYTE etc). Diese Unterscheidung kann der Compiler 
  280. leider nicht in den Debuginfos ablegen. Derzeit wird die AMIGA-C- 
  281. Schreibweise verwendet (kompakter).
  282.  
  283. Der Start des Programms ist jetzt systemkonformer und -kompatibler. Auch
  284. Aufrufe von Execute() oder SystemTagList() funktionieren jetzt und,
  285. wenn als Ausgabe die Console gewählt wird, kommen Ausgaben der
  286. Befehle auch auf die Console. Das Programm erscheint jetzt auch in der Liste 
  287. der CLIs, einen Kommandonamen in den Projekteinstellungen anzugeben ist also 
  288. sinnvoll.
  289.  
  290. Das Resource-Tracking ist nun implementiert. Am Ende des Programms oder nach 
  291. einem Kill werden bisher Screens, Windows, Memory, Libraries, Locks und 
  292. Files angezeigt, die nicht geschlossen oder freigegeben wurden. Ein 
  293. Doppelklick in die Liste führt an die Stelle des Funktionsaufruf. Das 
  294. neue Menü "Debug" enthält einen Menüpunkt "Flush Resources" 
  295. ("Ressourcen freigeben") zur Freigabe dieser Ressourcen. 
  296.  
  297. In manchen Programmen werden sehr viele Ressourcen alloziert, insbesondere
  298. natürlich Speicher. Solche Ressourcen, die also keinen direkten 
  299. Funktionsaufruf im Programm besitzen werden nicht angezeigt, aber dennoch
  300. freigegeben. 
  301. Ein schönes Beispiel hierfür kann mit der ASL-Library verdeutlicht werden.
  302. Wenn Sie ein Programm "killen", währen ein ASL-Requester offen ist, wird 
  303. das ASL-Fenster geschlossen, obwohl der OpenWindow-Aufruf nicht aus Ihrem
  304. Programm sondern aus der ASL-Library gemacht wurde.
  305.  
  306. Das Ressource-Tracking kann nur den unmittelbare "Caller" ermitteln. 
  307. D.h. die Funktion, die den jsr d(a6) enthält. Schon eine Stub-Funktion 
  308. für Library-Aufrufe verhindert deshalb die korrekte Anzeige des Aufrufs. 
  309. Deshalb ist es angeraten Stub-Funktionen zu vermeiden und "pragma amicall"- 
  310. und "tagcall"-Aufrufe zu verwenden.
  311.  
  312.  
  313. Editor:
  314. =======
  315.  
  316. Help-Funktion
  317. -------------
  318.  
  319. Mit drücken der Help Taste kann man das Wort unter dem Cursor an die
  320. HotHelp-Library (Version 3) übergeben. HotHelp wird dann veranlaßt,
  321. das Schlüsselwort zu suchen und den Hilfetext anzuzeigen!
  322.  
  323.  
  324. Lexikon-Dateien und manuelle Farbänderungen / Aufbau der Lexikon-Dateien
  325. ------------------------------------------------------------------------
  326. Lexikon (0001)
  327. Amiga Typen
  328. 0x00ff0000 0xffffffff 2 0 0
  329. 0
  330. VOID
  331. LONG...
  332.  
  333. Zeile 1: Diese Zeile identifiziert die Datei als Lexikon und trägt 
  334.          die Versionsnummer der Lexikon-Datei.
  335.  
  336. Zeile 2: Kommentarzeile
  337.  
  338. Zeile 3: RGB-Farbe-Vordergrund RGB-Farbe-Hintergrund (ab V39)
  339.          Vordergrund-Stiftnummer Hintergrund-Stiftnummer (für V37 und V38 erforderlich)
  340.          Stilnummer
  341.  
  342. Zeile 4: Groß-/Kleinschreibung beachten ein/aus
  343.  
  344. Zeile 5-...: Inhalte
  345.  
  346. Ab Betriebssystem-V39 können RGB Farben für die Lexika eingesetzt werden. 
  347. Die ersten beiden Zahlen geben in 24 Bit die RGB Farbe für 
  348. Schrift- und Hintergrundfarbe an. Dazu können auch Hexadezimalzahlen 
  349. mit "0x" am Anfang benutzt werden. 
  350.  
  351. Unter Kickstart V37/V38 werden feste Stiftnummern für die Farbangaben verwendet.
  352. Sie sollten das Compiler-System auf einem Screen mit mindestens 8 Farben 
  353. betreiben, da die Farbunterschiede andernfalls zu gering sind.
  354.  
  355.  
  356. Für den Editor wurden zwei neue Menüpunkte eingeführt: 
  357. 1. Einstellungen für den Editor allgemein...
  358. 2. ...und für jeden Text im besonderen.
  359.  
  360. Folgende Editoreinstellungen werden, wie im Fenster zu sehen, bereits
  361. unterstützt: Autosave, Backups, Strip EOL Blanks und Textfontwahl.
  362.  
  363. Autosave kennt zwei Algorithmen: 
  364. Entweder wird alle "n" Minuten ein normales Save durchgeführt, oder 
  365. es wird der Text in eine Extradatei gesichert. Der Name dieser 
  366. Extradatei wird automatisch durch dem Namen des Dokuments mit einem
  367. angehängten ";0" erzeugt. 
  368.  
  369. Das Sichern in diese Extradatei verändert natürlich nicht den 
  370. Textnamen und setzt auch nicht das Modify-Flag "M" zurück.
  371.  
  372. Zusätzlich kann man beim automatischen Sichern nachfragen lassen, ob 
  373. gesichert werden soll. 
  374.  
  375. Hat der Text keinen Namen, wird der Benutzer aufgefordert, den Text zu 
  376. sichern, ein Autosave wird dann nicht mehr durchgeführt. Beim Laden eines 
  377. Textes wird überprüft, ob eine Autosave-Datei jüngeren Datums existiert, in
  378. diesem Fall bekommt der Benutzer die Wahl welche Datei er laden will, als
  379. Textname wird in beiden Fällen der Originaldateiname gewählt.
  380.  
  381. Man kann bis zu 9 Backup-Dateien anlegen. Bei jedem Sichern des Textes (auch
  382. bei Autosave auf die Originaldatei) werden die Backup-dateinamen hochgezählt
  383. (die älteste Datei geht dabei eventuell verloren). Die Namen der Backup-
  384. Dateien
  385. ergeben sich aus dem Namen der Originaldatei mit angehängtem ";N", wobei
  386. "N" eine Ziffer zwischen 1 und 9 ist. Die älteste Datei ist die Datei mit
  387. der höchsten Nummer, die jüngste mit der Nummer 1.
  388.  
  389. Beim Sichern kann man alle "white spaces", d.h. insb. Spaces und Tabs am
  390. Ende der Textzeilen entfernen lassen. 
  391.  
  392. Als Zeichensatz kann jeder nicht-proportionale Zeichensatz angegeben werden.
  393.  
  394. Achtung: Momentan wird noch keine Fehlermeldung ausgegeben, wenn ein
  395. ungültiger (d.h. nicht existierender oder proportionaler) Zeichensatz
  396. angegeben wird. Es ist empfehlenswert wirklich Zeichensätze auszuwählen,
  397. deren Zeichen alle gleich breit sind. Dies gilt z.B. nicht für den Courier-
  398. Zeichensatz, manche Zeichen sind breiter als die im Font angegebene Breite.
  399. Dadurch kann es zu leichten Darstellungsfehlern am Rand des Texts kommen.
  400.  
  401. Die Tabulatorweite kann eingestellt werden und wird mit dem Tooltype 
  402. TABWIDTH gespeichert.
  403.  
  404. Automatische Einrückungen können durch "{" und "}" ausgelöst werden. 
  405. Bislang wird nur eingerückt (d.h. nur auf das Zeichen "{" reagiert). 
  406. Man kann wählen, ob Spaces oder Tabs eingefügt werden, und wieviel 
  407. jeweils.
  408.  
  409. Dabei werden 2 Methoden und ihre Kombinationen unterstützt:
  410.  
  411. 1. Vor der Klammer eingerückt bedeutet, daß beim Eingeben der Klammer 
  412.    diese eingerückt wird, wenn vor der Klammer nur Spaces oder Tabs in 
  413.    der Zeile stehen. Nach der Klammer wird nach dem nächsten Zeilenum-
  414.    bruch eingerückt, wenn die Klammer das letzte Zeichen der vorherigen 
  415.    Zeile ist.
  416.  
  417. Man kann auswählen, welche Lexika eingefärbt werden und die Syntaxein-
  418. färbungen für C/C++ Kommentare, Strings, Char-Konstanten und Zahl-Konstanten. 
  419.  
  420. Die Einfärbung von C-Kommentaren (/* Test */) funktioniert mit
  421. Einschränkungen: 
  422.  
  423.    geschachtelte Kommentare sind nicht möglich (werdem allerdings vom 
  424.    Compiler auch nicht unterstützt, #if 0 ... #endif macht das auch 
  425.    besser).
  426.  
  427.    Die gesamte Einfärberei hat einige Einschränkungen, die jetzt erst 
  428.    mit den C-Kommentaren wirklich zum Vorschein kommen: Verschachtelte 
  429.    Einfärbungen, z.B. C++-Kommentare, die in einem C-Kommentar stehen, 
  430.    können die Einfärbung durcheinander bringen. Werden die einzelnen 
  431.    Einfärbungen ausgeschaltet, so wird nur die Farbe ausgeschaltet, 
  432.    die Farbmarkierungen werden dennoch gesetzt.
  433.  
  434.    Also werden z.B. in einem C-Kommentar stehende Strings oder Lexika-
  435.    wörter nicht eingefärbt, egal ob die Einfärbung von C-Kommentaren an 
  436.    oder aus ist. Genauso bringt das Ausschalten der Einfärbungen zur Zeit
  437.    keinen Geschwindigkeitszuwachs.
  438.  
  439. Die Editoreinstellungen werden unter dem Namen "StormSettings.ED" 
  440. gespeichert. In dieser ASCII Datei stehen in den letzten Zeilen die 
  441. Farben und Register dieser Syntaxeinfärbungen entsprechend der 
  442. Reihenfolge im Texteinstellungsfenster und der Syntax, wie sie auch 
  443. in den Lexikadateien verwendet wird.
  444.  
  445. Die Gadgets im Editorfenster sind auch über Tastatur steuerbar. Der
  446. Shortcut ist natürlich von der Lokalisierung abhängig, sollte aber immer
  447. den Qualifier "ctrl" enthalten, um Konflikte mit anderen Shortcuts zu 
  448. vermeiden. Der Qualifier "ctrl" wird auch extra behandelt um Konflikte 
  449. mit Texteingaben zu vermeiden (was insbesondere CTRL-I und CTRL-M 
  450. betrifft, die jetzt nicht mehr äquivalent zu TAB und RETURN sind).
  451.  
  452. Zwischen der Modified-Anzeige und der Cursorspalten-Anzeige befindet sich
  453. jetzt eine Hilfezeile für alle Gadgets.
  454.  
  455. Um wirklich von einer 100%igen Tastaursteuerbarkeit zu reden fehlt noch 
  456. die Möglichkeit, zwischen den Textfenstern zu springen (bzw. auch die
  457. Projektfenster aktivieren zu können).
  458.  
  459. Das Find&Replace-Fenster ist nun auch vollständig tastatursteuerbar. Beim
  460. Öffnen des Fensters ist immer das Find-Stringgadget aktiv. Mit <Return> oder
  461. <Tab> wird der String gesucht und das Replace-Gadget aktiviert. 
  462. Dort wird mit <Return> oder <Tab> wieder das Findgadget aktiviert. Aus diesen 
  463. Stringgadgets heraus kann man alle anderen Gadgets dennoch durch die 
  464. Shortcuts bedienen, wahlweise mit der rechten oder auch linken Amiga-Taste 
  465. (die linke Amiga-Taste wird erlaubt um Konflikte mit Shortcuts von 
  466. Programmen wie NewEdit zu vermeiden, die einen Großteil aller Shortcuts 
  467. für sich belegen). Die Shortcuts der Cycle- und Checkboxgadgets 
  468. reaktivieren das Stringgadget wieder, die Shortcuts der Buttons aktivieren
  469. das Texteditorfenster. Will man also einen Text suchen und danach in das 
  470. Textfenster zurückkehren, so sollte man die Suche mit dem Shortcut von 
  471. "Find" (rcommand f) auslösen. <ESC> schließt das Find&Replace-Fenster und 
  472. aktiviert das Textfenster.
  473.  
  474. Die Funktionen aus der StormShell-Toolbar können auch aus dem Editor mit 
  475. den Funktionstasten aufgerufen werden.
  476.  
  477. Eine einfache Print-Funktion ist eingebaut: der ganze Text kann ausgedruckt
  478. werden, dabei wird ein Progress-Fenster angezeigt, in dem der Druck auch
  479. abgebrochen werden kann. 
  480.  
  481. Tastaturbelegung:
  482. -----------------
  483.  
  484. Shift-Cursor Up/Down
  485.     Bewegt den Cursor auf die erste/letzte Zeile, die im Fenster angezeigt
  486.     ist.
  487.     
  488. Shift-Cursor Left/Right
  489.     Bewegt den Cursor auf die erste/letzte Spalte in der aktuellen Zeile.
  490.     
  491. Alt-Cursor Up/Down
  492.     Springt an den Anfang/ans Ende des Textes.
  493.  
  494. Alt-Cursor Left/Right
  495.     Bewegt den Cursor auf das nächste Wort vor oder auf das letzte hinter
  496.     dem Cursor.
  497.  
  498. Shift-Delete oder Shift-Backspace
  499.     Löscht die Zeile, auf der der Cursor steht. Die Zeile wird in die Zwischen-
  500.     ablage gespeichert.
  501.  
  502. Alt-Delete
  503.     Löscht die Zeile ab der Cursor-Position bis zum Ende der Zeile.
  504.  
  505. Alt-Backspace
  506.     Löscht den Text zwischen der ersten Spalte bis zur Cursorposition.
  507.  
  508. Help
  509.     Schickt das Wort unter dem Cursor an die Hothelp-Library V3.0 (14. Feb 94).
  510.  
  511.  
  512. Compiler:
  513. ---------
  514.  
  515. Im Folgenden werden die Compileränderungen seit der Veröffentlichung 
  516. der Preview-Version aufgelistet.
  517.  
  518. Im ASM-Source wurde bei DS.B o.ä. die allokierte Speichergröße
  519. nur als 16-Bit-Zahl ausgegeben.
  520.  
  521. Ab 68020 wird der Befehl EXTB.L unterstützt.
  522.  
  523. Durch Probleme bei Fließkomma-Konstanten mit angehängtem "f" 
  524. (z.B. "0.5f") kam es gelegentlich zur Ausgabe von unsinnigen Werten.
  525.  
  526. Konstrukt "#if defined (xxx)" (die Variante mit Klammern hinter dem
  527. define) führte zu einer Compiler-Panik.
  528.  
  529. Konvertierung von "unsigned short"/"unsigned byte" auf einen längeren
  530. Typ geschah mittels AND und falscher Bitmaske (genau invers).
  531.  
  532. Konvertierung von "unsigned byte" auf einen vorzeichenbehafteten
  533. Ganzzahltypen geschah fälschlich mittels EXT.
  534.  
  535. Aufruf virtueller Funktionen bei Mehrfachvererbung: der
  536. "this"-Pointer der aufgerufenen Funktion wurde in der Variablen
  537. korrigiert, in der er gerade steht - auch wenn es sich dabei um
  538. eine noch benötigte Variable handelt.
  539.  
  540. "Rundungsfehler" bei Anordnung lokaler Variablen auf dem Stack
  541. führte u.U. zu Variablen an ungeraden Adressen und Stack Frames
  542. ungerader Größe.
  543.  
  544. "Geschmissene" Exceptions konnten im optimierten Modus meist nicht
  545. mehr aufgefangen werden.
  546.  
  547. Variable "sym_handlers" (wichtig fürs Exception Handling!) wird
  548. jetzt im Small-Data-Model auch A4-relativ adressiert (endlich
  549. eine sinnvolle Verbindung von Small Data Model und OO-Programmierung).
  550.  
  551. Wurde in einem Destruktor einer Klasse, die einen Member oder
  552. eine Basisklasse mit Destruktor besitzt, eine Inline-Funktion
  553. aufgerufen, so wurde vom Ende der Inline-Funktion direkt an das
  554. Ende des Destruktors (zur Destruierung von Membern und Basen)
  555. gesprungen.
  556.  
  557. Beim Abtesten einzelner Bits in Bitfeldern wurde auf das falsche
  558. Bit zugegriffen, was sich auf Umwegen auch beim Konstruieren und
  559. Destruieren virtueller Basisklassen bemerkbar machte.
  560.  
  561. Als Basiszeiger für die double-Mathe-Lib wird jetzt
  562. "_MathIeeDoubBasBase" statt "lib_MathBase" verwendet.
  563.  
  564. Die Bibliotheksroutinen "lib_int2double" und "lib_double2int" wurden
  565. durch direkte Aufrufe von IEEEDPFix/IEEEDPFlt ersetzt.
  566.  
  567. Die Repräsentierung von "long long" wurde compilerseitig auf
  568. eine einleuchtendere Form umgestellt (normales Big Endian).
  569. Außerdem werden für entsprechende Operationen die
  570. Bibliotheksfunktionen Add64, Sub64, Neg64, Cmp64, UMult64,
  571. UDiv64, UMod64, SMult64, SDiv64, SMod64 aufgerufen.
  572.  
  573. Leere "_INIT_"-Funktionen werden nicht mehr erzeugt.
  574.  
  575. Bei numerischer Auswertung der Ausdrücke "i != 0" und "!i" wurde
  576. das Ergebnis fälschlich mit AND.W statt AND.L ausmaskiert.
  577.  
  578. Ein recht globaler Fehler in der Speicherverwaltung verursachte
  579. Adreßfehler auf 68000ern (und ungünstig align'te Daten auf
  580. allen anderen Amigas).
  581.  
  582. Innerhalb von Konstruktoren wurden generell keine virtuellen
  583. Funktionen aufgerufen, selbst wenn diese eindeutig nicht über
  584. "this" bezogen waren.
  585.  
  586. Fehler beim Zugriff auf Strukturen von mehr als 32 KByte Größe:
  587. Adreßoffsets >32767 wurden falsch codiert und führten zu einem
  588. Assemblerfehler.
  589.  
  590.  
  591. Fehler im Zusammenhang mit MagicMenu und möglicherweise mit SUN-Mouse-Utilities
  592. -------------------------------------------------------------------------------
  593.  
  594. Bei installiertem MagicMenu friert der Bildschirm ein, wenn bei aktivem 
  595. Piktogramm-Fenster die rechte Maustaste gedrückt wird und sich der
  596. Mauszeiger über einem Piktogramm befindet. Durch eine Inkonformität von MagicMenu 
  597. werden Mousemove-Nachrichten geschickt, obwohl die rechte Maustaste gedrückt
  598. ist. In diesem Fall versucht dann die StormShell die Hilfezeile im Fenster
  599. auszugeben und erzeugt dadurch das Einfrieren des Bildschirms. Im Falle von 
  600. MagicMenu dauert es ca. 10 Sekunden und man kann normal weiterarbeiten.
  601.  
  602. Zu ähnlichen Problemen kann es auch mit verschiedenen SUN-Mouse Utilities 
  603. kommen.
  604.  
  605.  
  606.  
  607. Bei Fragen wenden Sie sich bitte an:
  608.  
  609.       HAAGE & PARTNER Computer GmbH
  610.       Mainzer Straße 10A
  611.       61191 Rosbach v.d.H.
  612.  
  613.       Tel: 06007/930050
  614.       Fax: 06007/7543
  615.  
  616.       Compuserve: 100654,3133
  617.       Internet: 100654.3133@compuserve.com
  618.       Web Page: http://home.pages.de/~haage
  619.  
  620.  
  621.  
  622. Zum Schluß möchten wir uns bei unseren aktiven Betatestern bedanken.
  623.  
  624. Vielen Dank an:
  625.  
  626.     Dietmar Augustin
  627.     Olaf Barthel
  628.     Michael Bergmann
  629.     Holger Burkarth
  630.     Thomas Bayen
  631.     Bernhard Büchter
  632.     Michael Donner
  633.     Torsten Ebeling
  634.     David Göhler
  635.     Clemens Marschner
  636.     Alexander Pratsch
  637.     Andreas Pfohl
  638.     Constantin Rack
  639.     Michael Rock
  640.     Jürgen Schildmann
  641.     Carsten Schlote
  642.     Stephan Schüerholz
  643.     Thomas Wilhelmi
  644.  
  645.  
  646. (c) 1995/1996 HAAGE & PARTNER Computer GmbH
  647.  
  648.